package atguigu.thread;

import java.util.concurrent.TimeUnit;

public class VolatileDemo2 implements Runnable {

	volatile boolean b = false;

	@Override
	public void run() {
		this.setB(true);
	}
	
	public boolean isB() {
		return b;
	}

	public void setB(boolean b) {
		this.b = b;
	}

	public static void main(String[] args) {
		// 资源类
		VolatileDemo2 demo = new VolatileDemo2();
		
		// 开启线程
		new Thread(demo,"A").start();

		// 如果这里没有等足够长的时间，即便是使用了volatile，也不会有想要的效果
		try {
			TimeUnit.SECONDS.sleep(3);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		// 主线程 : 本意是线程已经修改了b为true，但实际是，主内存中的b 仍然是false
		if(demo.isB()) {
			System.out.println("=================>");
		}else {
			System.out.println("----------------->");
		}
	}
}
